iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 19
1
DevOps

不是工程師也能看懂的routing小技巧系列 第 19

DAY19 之 IPv6的FE80網段是什麼?

  • 分享至 

  • xImage
  •  

前言

正式進入第19天,到了數饅頭的日子了,在了解scope之前,要先簡單講解一下什麼是IPv6的link local位置。

IPv6之Link local

在IPv6裡,每張網卡一定會出現的位置叫做鏈路本位置,由fe80開頭。既然所有網卡都有同一個fe80::的網段,那是不是全世界都串接在一起,就算是loopback的lo0都有一個fe80::1%lo0的IP,都可以用ping6(IPv6的ping)去ping到全世界的IPv6設備呢?

答案是不行的

那剛剛提到的fe80::1%lo0是什麼意思呢?為什麼多了後面一段%lo0的後綴呢?
那一串後綴就是要限制他只能往這裡丟,也就是ping fe80::1時會出現

ping6: UDP connect: No route to host

而加上%lo0

PING6(56=40+8+8 bytes) fe80::1%lo0 --> fe80::1%lo0
16 bytes from fe80::1%lo0, icmp_seq=0 hlim=64 time=0.095 ms
16 bytes from fe80::1%lo0, icmp_seq=1 hlim=64 time=0.169 ms
16 bytes from fe80::1%lo0, icmp_seq=2 hlim=64 time=0.168 ms
16 bytes from fe80::1%lo0, icmp_seq=3 hlim=64 time=0.179 ms

IPv6的兩個鏈路本位置,都是FE80網段,如果按照IPv4的特性來說,FE80網段在每個interface都去得了,那就要天下大亂了。因此,IPv6要在mac層是可以連通的,才能去ping到,因此必要限制%lo這樣的路徑,不然他就會直接顯示No route to host然後就GG惹。
看一下IPv6的routing table就大概知道是什麼回事了,我們使用ip -6 route show

fe80::/64 dev eth1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev eth2  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev vlan1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev br0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev ifb0  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev ifb1  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev dpsta  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0
fe80::/64 dev vlan2  proto kernel  metric 256  mtu 1500 advmss 1440 hoplimit 0

每個device都有fe80::/64的routing rule,他到底要走哪一條路?
每條路都叫忠孝東路,當然要先指定好高架橋還是平面道路還是地下道啊!!


上一篇
番外篇--RFC文件中哪些是一定要遵守的?
下一篇
Day 20 學校裡面會鎖對外流量怎麼辦?手邊又剛好有一台分享器
系列文
不是工程師也能看懂的routing小技巧30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言